import request from "@/utils/request";

const SYSDIANCILIST_BASE_URL = "/api/v1/sysDianciLists";

const SysDianciListAPI = {
    /** 获取电池列表分页数据 */
    getPage(queryParams?: SysDianciListPageQuery) {
        return request<any, PageResult<SysDianciListPageVO[]>>({
            url: `${SYSDIANCILIST_BASE_URL}/page`,
            method: "get",
            params: queryParams,
        });
    },
    /**
     * 获取电池列表表单数据
     *
     * @param id 电池列表ID
     * @returns 电池列表表单数据
     */
    getFormData(id: number) {
        return request<any, SysDianciListForm>({
            url: `${SYSDIANCILIST_BASE_URL}/${id}/form`,
            method: "get",
        });
    },

    /** 添加电池列表*/
    add(data: SysDianciListForm) {
        return request({
            url: `${SYSDIANCILIST_BASE_URL}`,
            method: "post",
            data: data,
        });
    },

    /**
     * 更新电池列表
     *
     * @param id 电池列表ID
     * @param data 电池列表表单数据
     */
     update(id: number, data: SysDianciListForm) {
        return request({
            url: `${SYSDIANCILIST_BASE_URL}/${id}`,
            method: "put",
            data: data,
        });
    },

    /**
     * 批量删除电池列表，多个以英文逗号(,)分割
     *
     * @param ids 电池列表ID字符串，多个以英文逗号(,)分割
     */
     deleteByIds(ids: string) {
        return request({
            url: `${SYSDIANCILIST_BASE_URL}/${ids}`,
            method: "delete",
        });
    }
}

export default SysDianciListAPI;

/** 电池列表分页查询参数 */
export interface SysDianciListPageQuery extends PageQuery {
    /** 电池编号 */
    no?: string;
}

/** 电池列表表单对象 */
export interface SysDianciListForm {
    id?:  number;
    /** 电池编号 */
    no?:  string;
    /** 电池型号 */
    spec?:  string;
    /** 容量 */
    volume?:  string;
    /** 制造商 */
    manufacturer?:  string;
    /** 生产日期 */
    manufacturerDate?:  Date;
    /** 生产批次 */
    productionBatch?:  string;
    /** 状态 */
    dianciState?:  number;
    /** 备注 */
    remark?:  string;
}

/** 电池列表分页对象 */
export interface SysDianciListPageVO {
    id?: number;
    /** 电池编号 */
    no?: string;
    /** 电池型号 */
    spec?: string;
    /** 容量 */
    volume?: string;
    /** 制造商 */
    manufacturer?: string;
    /** 生产日期 */
    manufacturerDate?: Date;
    /** 生产批次 */
    productionBatch?: string;
    /** 状态 */
    dianciState?: number;
    /** 备注 */
    remark?: string;
    /** 创建时间 */
    createTime?: Date;
}
